package com.zc.dto;

import lombok.Data;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

/**
 * @author zc
 * @Date 2025/8/22
 * @apiNote
 */
@Data
public class ClassExamStatsDTO {
    // 班级名称
    private String className;
    private Integer totalStudents = 0; // 初始化0，避免null

    // 统计指标
    private BigDecimal averageScore = BigDecimal.ZERO; // 平均分
    private Integer totalPoints = 0; // 积分
    private Integer rank; // 排名（动态计算）
    private BigDecimal maxScore; // 最高分
    private BigDecimal minScore; // 最低分

    // 自定义分数统计
    private Integer overSpecifiedScoreCount = 0; // 超过指定分数人数
    private Integer excellentCount = 0; // 优秀人数
    private BigDecimal excellentRate = BigDecimal.ZERO; // 优秀率
    private Integer passCount = 0; // 及格人数
    private BigDecimal passRate = BigDecimal.ZERO; // 及格率

    // 分数段人数统计（初始化所有字段为0）
    private Map<String, Integer> segmentCounts = new HashMap<String, Integer>() {{
        put("120", 0);
        put("[114,120)", 0);
        put("[108,114)", 0);
        put("[102,108)", 0);
        put("[96,102)", 0);
        put("[84,96)", 0);
        put("[72,84)", 0);
        put("[60,72)", 0);
        put("[48,60)", 0);
        put("[0,48)", 0);
    }};
}
